package Vista;

import Entidades.*;
import Logica.FactoryVistas;
import Logica.LogicaAplicacion;
import Logica.LogicaDispositivo;
import Logica.LogicaLugar;
import Logica.LogicaProveedorPregunta;
import java.awt.Color;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import java.awt.Dimension;
import java.awt.Toolkit;

/**
 *
 * @author Puma
 */
public class RegistroInternetDialUp extends javax.swing.JFrame implements Runnable {

    private Pattern patron = Pattern.compile("[A-Z,a-z,&%$#@!()*^]");
    private Matcher matcher = null;
    private int cuentasTotales = 0;
    private int minutos = 0, segundos = 0, horas = 0;
    private Boolean estadoFinal = false;
    private Boolean inicio = true;
    private Thread t;
    private ArrayList<Proveedor> proveedores = new ArrayList<Proveedor>();
    private Boolean esUnProveedor = false;
    private ArrayList servicios = null;
    private ArrayList<Historica> inserts = new ArrayList<Historica>();
    private Historica historica = null;
    private int numPreg = 5;
    private int posicionActual;
    private Boolean fuePrevia = false;
    private Boolean primeraVez = true;

    /**
     * Creates new form RegistroEnlancesDedicados
     */
    public RegistroInternetDialUp(int minutos, int segundos, int horas, ArrayList servicios) {
        initComponents();
        jBAgregarProveedorNuevo.setEnabled(false);
        this.minutos = minutos;
        this.segundos = segundos;
        this.horas = horas;
        this.servicios = servicios;
        jComboPaisesCiudadesDinamico.setVisible(false);
        jTCantidad.setVisible(false);
        jCProveedores.setVisible(false);
        jBAgregarTabla.setVisible(false);
        iniciarReloj();
    }

    public RegistroInternetDialUp(int minutos,int segundos, int horas, ArrayList servicios,int posicionActual){
        initComponents();
        jBAgregarProveedorNuevo.setEnabled(false);
        jComboPaisesCiudadesDinamico.setVisible(false);
        jTCantidad.setVisible(false);
        jCProveedores.setVisible(false);
        jBAgregarTabla.setVisible(false);
        this.minutos = minutos;
        this.segundos = segundos;
        this.horas = horas;
        this.servicios = servicios;
        this.setPosicionActual(posicionActual);
        iniciarReloj();
        agregarPantalla();
        System.out.println("Posicion actual: "+posicionActual);
        this.jComboPaisesCiudadesDinamico.setVisible(false);
            this.jCProveedores.setVisible(false);
            this.jTCantidad.setVisible(false);
            this.jBAgregarTabla.setVisible(false);
    }

    public RegistroInternetDialUp() {
        initComponents();
        jBAgregarProveedorNuevo.setEnabled(false);
        jComboPaisesCiudadesDinamico.setVisible(false);
        jTCantidad.setVisible(false);
        jCProveedores.setVisible(false);
        jBAgregarTabla.setVisible(false);        
    }

    private void iniciarReloj() {
        t = new Thread(this);
        t.start();
    }

     private void agregarPantalla(){
        LogicaAplicacion.agregarPantallaLista(new PantallaAplicacion(this, numPreg));
    }

    public Boolean getEstadoFinal() {
        return estadoFinal;
    }

    public void setEstadoFinal(Boolean estadoFinal) {
        this.estadoFinal = estadoFinal;
    }

    public Boolean getFuePrevia() {
        return fuePrevia;
    }

    public void setFuePrevia(Boolean fuePrevia) {
        this.fuePrevia = fuePrevia;
    }

    public ArrayList<Historica> getInserts() {
        return inserts;
    }

    public void setInserts(ArrayList<Historica> inserts) {
        this.inserts = inserts;
    }

     public void hacerVisible(Boolean visible, int posicionActual){
        this.setPosicionActual(posicionActual);
        this.setFuePrevia(true);
        this.setInserts(new ArrayList<Historica>());
        this.setVisible(visible);
        System.out.println("Posicion actual: "+posicionActual);

        if (this.getEstadoFinal()){
            this.jComboPaisesCiudadesDinamico.setVisible(true);
            this.jCProveedores.setVisible(true);
            this.jTCantidad.setVisible(true);
            this.jBAgregarTabla.setVisible(true);
         }
         else {
            this.jComboPaisesCiudadesDinamico.setVisible(false);
            this.jCProveedores.setVisible(false);
            this.jTCantidad.setVisible(false);
            this.jBAgregarTabla.setVisible(false);
         }
    }

    public void hacerVisibleDespuesSiguiente(Boolean visible, int posicionActual){
        this.setPosicionActual(posicionActual);
        this.setInserts(new ArrayList<Historica>());
        this.setVisible(visible);
        System.out.println("Posicion actual: "+posicionActual);

        if (this.getEstadoFinal()){
            this.jComboPaisesCiudadesDinamico.setVisible(true);
            this.jCProveedores.setVisible(true);
            this.jTCantidad.setVisible(true);
            this.jBAgregarTabla.setVisible(true);
         }
         else {
            this.jComboPaisesCiudadesDinamico.setVisible(false);
            this.jCProveedores.setVisible(false);
            this.jTCantidad.setVisible(false);
            this.jBAgregarTabla.setVisible(false);
         }
    }

    public int getPosicionActual() {
        return posicionActual;
    }

    private void setPosicionActual(int posicionActual) {
        this.posicionActual = posicionActual;
    }
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLayeredPane3 = new javax.swing.JLayeredPane();
        jLayeredPane2 = new javax.swing.JLayeredPane();
        jLabel3 = new javax.swing.JLabel();
        jComboPaisesCiudades = new javax.swing.JComboBox();
        jLInformacionProveedor = new javax.swing.JLabel();
        jTCuentasProveedor = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jBAgregarInfoTabla = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTInformacionProveedores = new javax.swing.JTable();
        JBPrev = new javax.swing.JButton();
        jBAceptar = new javax.swing.JButton();
        jLabel10 = new javax.swing.JLabel();
        jCProveedores = new javax.swing.JComboBox();
        jComboPaisesCiudadesDinamico = new javax.swing.JComboBox();
        jTCantidad = new javax.swing.JTextField();
        jBAgregarTabla = new javax.swing.JButton();
        jCProveedoresTabla = new javax.swing.JComboBox();
        jLCuentaActualizada = new javax.swing.JLabel();
        jLayeredPane1 = new javax.swing.JLayeredPane();
        jLabel5 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jBFinalizarSeleccion = new javax.swing.JButton();
        jLabel12 = new javax.swing.JLabel();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTComentarios = new javax.swing.JTextArea();
        jCIntercable = new javax.swing.JCheckBox();
        jCMovistar = new javax.swing.JCheckBox();
        jCMCI = new javax.swing.JCheckBox();
        jCCantv = new javax.swing.JCheckBox();
        jCSupercable = new javax.swing.JCheckBox();
        jCUnete = new javax.swing.JCheckBox();
        jCIMPSAT = new javax.swing.JCheckBox();
        jCNetUno = new javax.swing.JCheckBox();
        jCTutopia = new javax.swing.JCheckBox();
        jTOtros = new javax.swing.JTextField();
        jCOtro = new javax.swing.JCheckBox();
        jBAgregarProveedorNuevo = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jTCuentas = new javax.swing.JTextField();
        jLLogo = new javax.swing.JLabel();
        jLTitulo = new javax.swing.JLabel();
        jLSponsor = new javax.swing.JLabel();
        jLTimer = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jBAceptarCantidad = new javax.swing.JButton();
        jLabel8 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel3.setText("Ciudad / Estado:");
        jLabel3.setBounds(10, 120, 110, 20);
        jLayeredPane2.add(jLabel3, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jComboPaisesCiudades.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "- Seleccione", "D. Capital", "Amazonas", "Anzoategui", "Apure", "Aragua", "Barinas", "Bolivar", "Carabobo", "Cojedes", "D. Amacuro", "Falcon", "Guarico", "Lara", "Merida", "Miranda", "Monagas", "N. Esparta", "Portuguesa", "Sucre", "Tachira", "Trujillo", "Yaracuy", "Vargas", "Zulia", "No sabe / No contesta", " " }));
        jComboPaisesCiudades.setEnabled(false);
        jComboPaisesCiudades.setBounds(140, 120, 160, 20);
        jLayeredPane2.add(jComboPaisesCiudades, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLInformacionProveedor.setText("Proveedor:");
        jLInformacionProveedor.setBounds(10, 60, 100, 14);
        jLayeredPane2.add(jLInformacionProveedor, javax.swing.JLayeredPane.DEFAULT_LAYER);
        jTCuentasProveedor.setBounds(140, 90, 38, 20);
        jLayeredPane2.add(jTCuentasProveedor, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel6.setText("Cantidad de Cuentas:");
        jLabel6.setBounds(10, 90, 120, 20);
        jLayeredPane2.add(jLabel6, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jBAgregarInfoTabla.setText("Agregar a tabla >");
        jBAgregarInfoTabla.setEnabled(false);
        jBAgregarInfoTabla.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBAgregarInfoTablaActionPerformed(evt);
            }
        });
        jBAgregarInfoTabla.setBounds(160, 150, 150, 23);
        jLayeredPane2.add(jBAgregarInfoTabla, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jTInformacionProveedores.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Proveedor", "Ciudad / Estado", "Cantidad"
            }
        ));
        jScrollPane1.setViewportView(jTInformacionProveedores);

        jScrollPane1.setBounds(350, 40, 480, 181);
        jLayeredPane2.add(jScrollPane1, javax.swing.JLayeredPane.DEFAULT_LAYER);

        JBPrev.setText("< Prev");
        JBPrev.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                JBPrevActionPerformed(evt);
            }
        });
        JBPrev.setBounds(700, 270, 73, 23);
        jLayeredPane2.add(JBPrev, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jBAceptar.setText("Aceptar");
        jBAceptar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBAceptarActionPerformed(evt);
            }
        });
        jBAceptar.setBounds(780, 270, 71, 23);
        jLayeredPane2.add(jBAceptar, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel10.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel10.setText("De las cuentas que posee cuantas tiene con cada proveedor y en cuales estados del país se encuentran ubicadas?");
        jLabel10.setBounds(10, 20, 880, 14);
        jLayeredPane2.add(jLabel10, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCProveedores.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "- Seleccione", "Cantv", "Movistar / Telefónica", "CABLETEL / NETUNO", "Intercable", "Supercable", "MCI / Verizon", "Unete", "Tutopia", "IMPSAT / GLOBAL CROSSING", "Otro" }));
        jCProveedores.setBounds(360, 230, 110, 20);
        jLayeredPane2.add(jCProveedores, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jComboPaisesCiudadesDinamico.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "- Seleccione", "D. Capital", "Amazonas ", "Anzoategui", "Apure", "Aragua", "Barinas", "Bolivar", "Carabobo", "Cojedes", "D. Amacuro", "Falcon", "Guarico", "Lara", "Merida", "Miranda", "Monagas", "N. Esparta", "Portuguesa", "Sucre", "Tachira", "Trujillo", "Yaracuy", "Vargas", "Zulia", "No sabe / No contesta" }));
        jComboPaisesCiudadesDinamico.setBounds(530, 230, 100, 20);
        jLayeredPane2.add(jComboPaisesCiudadesDinamico, javax.swing.JLayeredPane.DEFAULT_LAYER);
        jTCantidad.setBounds(690, 230, 110, 20);
        jLayeredPane2.add(jTCantidad, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jBAgregarTabla.setText("+");
        jBAgregarTabla.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBAgregarTablaActionPerformed(evt);
            }
        });
        jBAgregarTabla.setBounds(830, 230, 40, 23);
        jLayeredPane2.add(jBAgregarTabla, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCProveedoresTabla.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "- Seleccione" }));
        jCProveedoresTabla.setBounds(140, 60, 160, 20);
        jLayeredPane2.add(jCProveedoresTabla, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLCuentaActualizada.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLCuentaActualizada.setText("Cuentas faltantes por registrar: X");
        jLCuentaActualizada.setBounds(20, 210, 290, 30);
        jLayeredPane2.add(jLCuentaActualizada, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLayeredPane2.setBounds(6, 380, 880, 300);
        jLayeredPane3.add(jLayeredPane2, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel5.setText("Comentarios Adicionales del entrevistado:");
        jLabel5.setBounds(420, 50, 310, 14);
        jLayeredPane1.add(jLabel5, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel11.setText("Proveedores:");
        jLabel11.setBounds(10, 40, 140, 14);
        jLayeredPane1.add(jLabel11, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jBFinalizarSeleccion.setText("Finalizar Selección");
        jBFinalizarSeleccion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBFinalizarSeleccionActionPerformed(evt);
            }
        });
        jBFinalizarSeleccion.setBounds(20, 190, 170, 23);
        jLayeredPane1.add(jBFinalizarSeleccion, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel12.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel12.setText("¿Que proveedores del servicio internet Dial Up esta contratando actualmente?");
        jLabel12.setBounds(0, 20, 530, 14);
        jLayeredPane1.add(jLabel12, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jTComentarios.setColumns(20);
        jTComentarios.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jTComentarios.setRows(5);
        jScrollPane2.setViewportView(jTComentarios);

        jScrollPane2.setBounds(420, 70, 410, 140);
        jLayeredPane1.add(jScrollPane2, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCIntercable.setBackground(new java.awt.Color(255, 255, 255));
        jCIntercable.setText("Intercable");
        jCIntercable.setBounds(20, 120, 180, 23);
        jLayeredPane1.add(jCIntercable, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCMovistar.setBackground(new java.awt.Color(255, 255, 255));
        jCMovistar.setText("Movistar / Telefónica");
        jCMovistar.setBounds(20, 80, 180, 23);
        jLayeredPane1.add(jCMovistar, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCMCI.setBackground(new java.awt.Color(255, 255, 255));
        jCMCI.setText("MCI / Verizon");
        jCMCI.setBounds(20, 160, 170, 23);
        jLayeredPane1.add(jCMCI, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCCantv.setBackground(new java.awt.Color(255, 255, 255));
        jCCantv.setText("Cantv");
        jCCantv.setBounds(20, 60, 120, 23);
        jLayeredPane1.add(jCCantv, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCSupercable.setBackground(new java.awt.Color(255, 255, 255));
        jCSupercable.setText("Supercable");
        jCSupercable.setBounds(20, 140, 170, 23);
        jLayeredPane1.add(jCSupercable, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCUnete.setBackground(new java.awt.Color(255, 255, 255));
        jCUnete.setText("Unete");
        jCUnete.setBounds(210, 60, 140, 23);
        jLayeredPane1.add(jCUnete, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCIMPSAT.setBackground(new java.awt.Color(255, 255, 255));
        jCIMPSAT.setText("IMPSAT / GLOBAL CROSSING");
        jCIMPSAT.setBounds(210, 100, 170, 20);
        jLayeredPane1.add(jCIMPSAT, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCNetUno.setBackground(new java.awt.Color(255, 255, 255));
        jCNetUno.setText("CABLETEL / NETUNO");
        jCNetUno.setBounds(20, 100, 140, 23);
        jLayeredPane1.add(jCNetUno, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCTutopia.setBackground(new java.awt.Color(255, 255, 255));
        jCTutopia.setText("Tutopia");
        jCTutopia.setBounds(210, 80, 120, 23);
        jLayeredPane1.add(jCTutopia, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jTOtros.setEnabled(false);
        jTOtros.setBounds(280, 120, 90, 20);
        jLayeredPane1.add(jTOtros, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jCOtro.setBackground(new java.awt.Color(255, 255, 255));
        jCOtro.setText("Otro");
        jCOtro.setBounds(210, 120, 70, 23);
        jLayeredPane1.add(jCOtro, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jBAgregarProveedorNuevo.setText("Agregar otro Proveedor");
        jBAgregarProveedorNuevo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBAgregarProveedorNuevoActionPerformed(evt);
            }
        });
        jBAgregarProveedorNuevo.setBounds(210, 190, 190, 23);
        jLayeredPane1.add(jBAgregarProveedorNuevo, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLayeredPane1.setBounds(10, 156, 850, 240);
        jLayeredPane3.add(jLayeredPane1, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel1.setText("Cantidad de Cuentas:");
        jLabel1.setBounds(50, 120, 138, 40);
        jLayeredPane3.add(jLabel1, javax.swing.JLayeredPane.DEFAULT_LAYER);
        jTCuentas.setBounds(180, 130, 38, 20);
        jLayeredPane3.add(jTCuentas, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLLogo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Imagenes/DatinvestLogo.png"))); // NOI18N
        jLLogo.setBounds(10, 10, 80, 80);
        jLayeredPane3.add(jLLogo, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLTitulo.setFont(new java.awt.Font("Tahoma", 3, 14)); // NOI18N
        jLTitulo.setText(".:: Instrumento de emprendedores - Planilla de servicio Internet Dial-Up::. ");
        jLTitulo.setBounds(90, 20, 590, 14);
        jLayeredPane3.add(jLTitulo, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLSponsor.setText("Desarrollado para Datinvest C.A");
        jLSponsor.setBounds(110, 40, 220, 14);
        jLayeredPane3.add(jLSponsor, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLTimer.setText("jLabel12");
        jLTimer.setBounds(790, 20, 60, 14);
        jLayeredPane3.add(jLTimer, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel9.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jLabel9.setText("¿Cuántas cuentas de internet tiene contratada la empresa/institución en este momento?");
        jLabel9.setBounds(10, 100, 560, 14);
        jLayeredPane3.add(jLabel9, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jBAceptarCantidad.setText("Aceptar");
        jBAceptarCantidad.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBAceptarCantidadActionPerformed(evt);
            }
        });
        jBAceptarCantidad.setBounds(230, 130, 100, 23);
        jLayeredPane3.add(jBAceptarCantidad, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Vista/Imagenes/fondoBlanco.png"))); // NOI18N
        jLabel8.setText("jLabel8");
        jLabel8.setBounds(0, 0, 890, 690);
        jLayeredPane3.add(jLabel8, javax.swing.JLayeredPane.DEFAULT_LAYER);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLayeredPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 887, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jLayeredPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
        );

        setSize(new java.awt.Dimension(903, 418));
        setLocationRelativeTo(null);
    }// </editor-fold>//GEN-END:initComponents

    private void jBFinalizarSeleccionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBFinalizarSeleccionActionPerformed

if (JOptionPane.showConfirmDialog(null,"¿Está seguro de la selección realizada?"
            + "","Información",
            JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION){

    jCProveedoresTabla.removeAllItems();
    jCProveedoresTabla.addItem("- Seleccione");
    
        if (jCCantv.isSelected())
            jCProveedoresTabla.addItem("Cantv");
        
        if (jCMovistar.isSelected())
            jCProveedoresTabla.addItem("Movistar / Telefónica");
        
        if (jCNetUno.isSelected())
            jCProveedoresTabla.addItem("CABLETEL / NETUNO");
        
        if (jCIntercable.isSelected())
            jCProveedoresTabla.addItem("Intercable");
        
        if (jCSupercable.isSelected())
            jCProveedoresTabla.addItem("Supercable");
        
        if (jCMCI.isSelected())
            jCProveedoresTabla.addItem("MCI / Verizon");
        
        if (jCUnete.isSelected())
            jCProveedoresTabla.addItem("Unete");
        
        if (jCTutopia.isSelected())
            jCProveedoresTabla.addItem("Tutopia");
        
        if (jCIMPSAT.isSelected())
            jCProveedoresTabla.addItem("IMPSAT / GLOBAL CROSSING");
        
        if (jCOtro.isSelected())
            jCProveedoresTabla.addItem("Otro");                           

            if (proveedores.size() == 1) {
                esUnProveedor = true;
            }

            this.setMinimumSize(new Dimension(903,730));
                    Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
                    Dimension ventana = getSize();
                this.setLocation((pantalla.width - ventana.width) / 2,
                                (pantalla.height - ventana.height) / 2);
            bloquearRadios();
            
            jBFinalizarSeleccion.setEnabled(false);
            jBAgregarProveedorNuevo.setEnabled(true);
            jTCuentasProveedor.setEnabled(true);
            jComboPaisesCiudades.setEnabled(true);
            jBAgregarInfoTabla.setEnabled(true);

            jLCuentaActualizada.setText("Cuentas faltantes por registrar: "+cuentasTotales);
            
        } else {
            JOptionPane.showMessageDialog(null, "Debe Seleccionar al menos "
                    + "un proveedor", "Error", JOptionPane.ERROR_MESSAGE);
        }
    }//GEN-LAST:event_jBFinalizarSeleccionActionPerformed

    private void jBAgregarInfoTablaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBAgregarInfoTablaActionPerformed

        // Validación para primer o último nodo.        

        if ((proveedores.size() - 1) == 0) {
            esUnProveedor = true;
        }

          if (primeraVez){
              if (!contieneLetras(jTCuentasProveedor.getText())) {
            
             if (cuentasTotales-Integer.parseInt(jTCuentasProveedor.getText()) >= 0){
                
                cuentasTotales = cuentasTotales-Integer.parseInt(jTCuentasProveedor.getText());
                
                jLCuentaActualizada.setText("Cuentas faltantes por registrar: "+cuentasTotales);
                
                InsertarEnTabla(jCProveedoresTabla.getSelectedItem().toString(),
                        jTCuentasProveedor.getText(),
                        jComboPaisesCiudades.getSelectedItem().toString()); // Insertar en tabla.
            
                jTCuentasProveedor.setText("");
                jComboPaisesCiudades.setSelectedIndex(0);
                jCProveedoresTabla.setSelectedIndex(0);
                
             }
             else
              JOptionPane.showMessageDialog(null,"No se pueden "
                      + "registrar esa cantidad de cuentas"
                    ,"Error",JOptionPane.ERROR_MESSAGE);  
            }
               else {
                JOptionPane.showMessageDialog(null, "La cantidad debe ser numérica", "Error", JOptionPane.ERROR_MESSAGE);
            }   
          }
          else {
              if (!contieneLetras(jTCuentasProveedor.getText())) {
                    
                InsertarEnTabla(jCProveedoresTabla.getSelectedItem().toString(),
                        jTCuentasProveedor.getText(),
                        jComboPaisesCiudades.getSelectedItem().toString()); // Insertar en tabla.
            
                jTCuentasProveedor.setText("");
                jComboPaisesCiudades.setSelectedIndex(0);
                jCProveedoresTabla.setSelectedIndex(0);
                
             }
             else {
                JOptionPane.showMessageDialog(null, "La cantidad debe ser numérica", "Error", JOptionPane.ERROR_MESSAGE);
            }   
          }
    }//GEN-LAST:event_jBAgregarInfoTablaActionPerformed

    private void JBPrevActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_JBPrevActionPerformed
       try {
            this.setVisible(false);
            LogicaAplicacion.mostrarPantallaRegreso(this.getPosicionActual() - 1);
        } catch (Exception ex) {
            this.setVisible(true);
            JOptionPane.showMessageDialog(null,ex.getMessage());
        }
    }//GEN-LAST:event_JBPrevActionPerformed

    private void jBAceptarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBAceptarActionPerformed
        primeraVez = false;
        actualizarTablaContenidoNuevo();                 
        LogicaAplicacion.actualizarPantalla(numPreg, this);

      int cuentaActual = LogicaAplicacion.getContarInternet();
                        
            LogicaAplicacion.setContarInternet(cuentaActual-1);

             if (LogicaAplicacion.getContarInternet() == 0){
                   System.out.println("Voy a abrir la pantalla nueva..");
                   if (!this.fuePrevia){
                                 System.out.println("Agregar la pantalla a la lista, y ya!");
                                 this.servicios.remove(0);
                                 FactoryVistas.obtenerSiguientePregunta(servicios, minutos, segundos, horas,this.getPosicionActual()+1).setVisible(true);
                                 this.setVisible(false);
                             }
                            else {
                                 System.out.println("No voy a remover de la lista de servicios, ni insertare en la lista... pero actualizare");
                                 LogicaAplicacion.mostrarPantallaSiguiente(this.getPosicionActual()+1);
                                 this.setVisible(false);
                            }
             }
               
             else {
                 System.out.println("Aun no..");
                 
                    if (!this.fuePrevia){
                        System.out.println("Agregar la pantalla a la lista, y ya!");
                        this.servicios.remove(0);
                        FactoryVistas.obtenerSiguientePregunta(servicios, minutos, segundos, horas,this.getPosicionActual()+1).setVisible(true);
                        this.setVisible(false);
                }
               else {
                    System.out.println("No voy a remover de la lista de servicios, ni insertare en la lista... pero actualizare");
                    LogicaAplicacion.mostrarPantallaSiguiente(this.getPosicionActual()+1);
                    this.setVisible(false);
               }
                 
             }
    }//GEN-LAST:event_jBAceptarActionPerformed

    private void jBAgregarTablaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBAgregarTablaActionPerformed
      if (!contieneLetras(jTCantidad.getText())){
          InsertarEnTabla(jCProveedores.getSelectedItem().toString(),
                jTCantidad.getText(),
                jComboPaisesCiudadesDinamico.getSelectedItem().toString());
        jCProveedores.setSelectedIndex(0);
        jComboPaisesCiudadesDinamico.setSelectedIndex(0);
        jTCantidad.setText("");
      }
      else JOptionPane.showMessageDialog(null,"No se pueden agregar campos no numéricos","ERROR",JOptionPane.ERROR_MESSAGE);
}//GEN-LAST:event_jBAgregarTablaActionPerformed

    private void jBAgregarProveedorNuevoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBAgregarProveedorNuevoActionPerformed
        jBAgregarProveedorNuevo.setEnabled(false);
        jBFinalizarSeleccion.setEnabled(true);

        if (!jCCantv.isSelected()){
            jCCantv.setEnabled(true);
        }
        if (!jCSupercable.isSelected()){
            jCSupercable.setEnabled(true);
        }
        if (!jCIntercable.isSelected()){
            jCIntercable.setEnabled(true);
        }
        if (!jCUnete.isSelected()){
            jCUnete.setEnabled(true);
        }
        if (!jCTutopia.isSelected()){
            jCTutopia.setEnabled(true);
        }
        if (!jCNetUno.isSelected()){
            jCNetUno.setEnabled(true);
        }
        if (!jCIMPSAT.isSelected()){
            jCIMPSAT.setEnabled(true);
        }
        if (!jCMovistar.isSelected()){
            jCMovistar.setEnabled(true);
        }
        if (!jCMCI.isSelected()){
            jCMCI.setEnabled(true);
        }
        if (!jCOtro.isSelected()){
            jCOtro.setEnabled(true);
        }
        
        jBAgregarProveedorNuevo.setEnabled(false);
            jTCuentasProveedor.setEnabled(false);
            jComboPaisesCiudades.setEnabled(false);
            jBAgregarInfoTabla.setEnabled(false);
    }//GEN-LAST:event_jBAgregarProveedorNuevoActionPerformed

    private void jBAceptarCantidadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBAceptarCantidadActionPerformed
        if (JOptionPane.showConfirmDialog(null,"¿Está seguro de la seleccion realizada?"
            + "","Información",
            JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION){
        if (!contieneLetras(jTCuentas.getText())){
            this.cuentasTotales = Integer.parseInt(jTCuentas.getText());
            jTCuentas.setEnabled(false);
        }
        else {
            JOptionPane.showMessageDialog(null,"La cantidad debe ser numérica"
                ,"Error",JOptionPane.ERROR_MESSAGE);
        }
        }
    }//GEN-LAST:event_jBAceptarCantidadActionPerformed

     private void actualizarTablaContenidoNuevo(){ 
          for (int i = 0; i < this.jTInformacionProveedores.getRowCount(); i++) {
                         
                         historica = new Historica();
                         
                           for (int j = 0; j < this.jTInformacionProveedores.getColumnCount(); j++) {
                               switch (j){
                               
                                case 0:  historica.setProveedor(this.jTInformacionProveedores.
                                            getValueAt(i,j).toString());
                                        break;
                                    
                                case 1: historica.setLug_id(new LogicaLugar().obtenerIdLugar(
                                        this.jTInformacionProveedores.
                                            getValueAt(i,j).toString()));
                                        break;
                                    
                                case 2: historica.setCantidad(Integer.
                                        parseInt(this.jTInformacionProveedores.
                                            getValueAt(i,j).toString()));
                                        break;
                                    
//                                case 3: historica.setDis_id(new LogicaDispositivo().
//                                        obtenerIdDispositivo(sustituirAcentos
//                                        (this.jTInformacionProveedores.
//                                            getValueAt(i,j).toString())));
//                                        break;
                               }
                           }
                           inserts.add(historica);
                        }

            // Copiar para abajo.
            
            LogicaAplicacion.setP11at(obtenerCuentasDialUpTotales());

            LogicaAplicacion.setP11a_c1(obtenerCuentasDialUpTotalesPorRegion(1));
            LogicaAplicacion.setP11a_c2(obtenerCuentasDialUpTotalesPorRegion(2));
            LogicaAplicacion.setP11a_c3(obtenerCuentasDialUpTotalesPorRegion(3));
            LogicaAplicacion.setP11a_c4(obtenerCuentasDialUpTotalesPorRegion(4));
            LogicaAplicacion.setP11a_c5(obtenerCuentasDialUpTotalesPorRegion(5));
            LogicaAplicacion.setP11a_c6(obtenerCuentasDialUpTotalesPorRegion(6));
            
            LogicaAplicacion.setP11a_f1(contarCuentasDialUpPorProveedor("Cantv"));
            LogicaAplicacion.setP11a_f2(contarCuentasDialUpPorProveedor("Movistar / Telefónica"));       
            LogicaAplicacion.setP11a_f4(contarCuentasDialUpPorProveedor("Intercable"));
            LogicaAplicacion.setP11a_f5(contarCuentasDialUpPorProveedor("Supercable"));
            LogicaAplicacion.setP11a_f6(contarCuentasDialUpPorProveedor("CABLETEL / NETUNO"));
            LogicaAplicacion.setP11a_f7(contarCuentasDialUpPorProveedor("MCI / Verizon"));
            LogicaAplicacion.setP11a_f8(contarCuentasDialUpPorProveedor("Unete"));
            LogicaAplicacion.setP11a_f9(contarCuentasDialUpPorProveedor("Tutopia"));
            LogicaAplicacion.setP11a_f10(contarCuentasDialUpPorProveedor("IMPSAT / GLOBAL CROSSING"));
            LogicaAplicacion.setP11a_f11(contarCuentasDialUpPorProveedor("Otro"));
            
            LogicaAplicacion.setP11aa_1(contarCuentasDialUpPorProveedorRegion("Cantv",1));
            LogicaAplicacion.setP11aa_2(contarCuentasDialUpPorProveedorRegion("Movistar / Telefónica",1));
            //LogicaAplicacion.setP11aa_3(contarCuentasDialUpPorProveedorRegion("BT Latam (Comsat)",1));
            LogicaAplicacion.setP11aa_4(contarCuentasDialUpPorProveedorRegion("Intercable",1));
            LogicaAplicacion.setP11aa_5(contarCuentasDialUpPorProveedorRegion("Supercable",1));
            LogicaAplicacion.setP11aa_6(contarCuentasDialUpPorProveedorRegion("MCI / Verizon",1));
            LogicaAplicacion.setP11aa_7(contarCuentasDialUpPorProveedorRegion("Unete",1));
            LogicaAplicacion.setP11aa_8(contarCuentasDialUpPorProveedorRegion("Net Uno",1));
            LogicaAplicacion.setP11aa_9(contarCuentasDialUpPorProveedorRegion("Tutopia",1));
            LogicaAplicacion.setP11aa_10(contarCuentasDialUpPorProveedorRegion("IMPSAT / GLOBAL CROSSING",1));
            LogicaAplicacion.setP11aa_11(contarCuentasDialUpPorProveedorRegion("Otro",1));
            
            LogicaAplicacion.setP11ab_1(contarCuentasDialUpPorProveedorRegion("Cantv",2));
            LogicaAplicacion.setP11ab_2(contarCuentasDialUpPorProveedorRegion("Movistar / Telefónica",2));
            //LogicaAplicacion.setP11ab_3(contarCuentasDialUpPorProveedorRegion("BT Latam (Comsat)",2));
            LogicaAplicacion.setP11ab_4(contarCuentasDialUpPorProveedorRegion("Intercable",2));
            LogicaAplicacion.setP11ab_5(contarCuentasDialUpPorProveedorRegion("Supercable",2));
            LogicaAplicacion.setP11ab_6(contarCuentasDialUpPorProveedorRegion("MCI / Verizon",2));
            LogicaAplicacion.setP11ab_7(contarCuentasDialUpPorProveedorRegion("Unete",2));
            LogicaAplicacion.setP11ab_8(contarCuentasDialUpPorProveedorRegion("Net Uno",2));
            LogicaAplicacion.setP11ab_9(contarCuentasDialUpPorProveedorRegion("Tutopia",2));
            LogicaAplicacion.setP11ab_10(contarCuentasDialUpPorProveedorRegion("IMPSAT / GLOBAL CROSSING",2));
            LogicaAplicacion.setP11ab_11(contarCuentasDialUpPorProveedorRegion("Otro",2));
            
            LogicaAplicacion.setP11ac_1(contarCuentasDialUpPorProveedorRegion("Cantv",3));
            LogicaAplicacion.setP11ac_2(contarCuentasDialUpPorProveedorRegion("Movistar / Telefónica",3));
            //LogicaAplicacion.setP11ac_3(contarCuentasDialUpPorProveedorRegion("BT Latam (Comsat)",3));
            LogicaAplicacion.setP11ac_4(contarCuentasDialUpPorProveedorRegion("Intercable",3));
            LogicaAplicacion.setP11ac_5(contarCuentasDialUpPorProveedorRegion("Supercable",3));
            LogicaAplicacion.setP11ac_6(contarCuentasDialUpPorProveedorRegion("MCI / Verizon",3));
            LogicaAplicacion.setP11ac_7(contarCuentasDialUpPorProveedorRegion("Unete",3));
            LogicaAplicacion.setP11ac_8(contarCuentasDialUpPorProveedorRegion("Net Uno",3));
            LogicaAplicacion.setP11ac_9(contarCuentasDialUpPorProveedorRegion("Tutopia",3));
            LogicaAplicacion.setP11ac_10(contarCuentasDialUpPorProveedorRegion("IMPSAT / GLOBAL CROSSING",3));
            LogicaAplicacion.setP11ac_11(contarCuentasDialUpPorProveedorRegion("Otro",3));
            
            LogicaAplicacion.setP11ad_1(contarCuentasDialUpPorProveedorRegion("Cantv",4));
            LogicaAplicacion.setP11ad_2(contarCuentasDialUpPorProveedorRegion("Movistar / Telefónica",4));
            //LogicaAplicacion.setP11ad_3(contarCuentasDialUpPorProveedorRegion("BT Latam (Comsat)",4));
            LogicaAplicacion.setP11ad_4(contarCuentasDialUpPorProveedorRegion("Intercable",4));
            LogicaAplicacion.setP11ad_5(contarCuentasDialUpPorProveedorRegion("Supercable",4));
            LogicaAplicacion.setP11ad_6(contarCuentasDialUpPorProveedorRegion("MCI / Verizon",4));
            LogicaAplicacion.setP11ad_7(contarCuentasDialUpPorProveedorRegion("Unete",4));
            LogicaAplicacion.setP11ad_8(contarCuentasDialUpPorProveedorRegion("Net Uno",4));
            LogicaAplicacion.setP11ad_9(contarCuentasDialUpPorProveedorRegion("Tutopia",4));
            LogicaAplicacion.setP11ad_10(contarCuentasDialUpPorProveedorRegion("IMPSAT / GLOBAL CROSSING",4));
            LogicaAplicacion.setP11ad_11(contarCuentasDialUpPorProveedorRegion("Otro",4));
            
            LogicaAplicacion.setP11ae_1(contarCuentasDialUpPorProveedorRegion("Cantv",5));
            LogicaAplicacion.setP11ae_2(contarCuentasDialUpPorProveedorRegion("Movistar / Telefónica",5));
            //LogicaAplicacion.setP11ae_3(contarCuentasDialUpPorProveedorRegion("BT Latam (Comsat)",5));
            LogicaAplicacion.setP11ae_4(contarCuentasDialUpPorProveedorRegion("Intercable",5));
            LogicaAplicacion.setP11ae_5(contarCuentasDialUpPorProveedorRegion("Supercable",5));
            LogicaAplicacion.setP11ae_6(contarCuentasDialUpPorProveedorRegion("MCI / Verizon",5));
            LogicaAplicacion.setP11ae_7(contarCuentasDialUpPorProveedorRegion("Unete",5));
            LogicaAplicacion.setP11ae_8(contarCuentasDialUpPorProveedorRegion("Net Uno",5));
            LogicaAplicacion.setP11ae_9(contarCuentasDialUpPorProveedorRegion("Tutopia",5));
            LogicaAplicacion.setP11ae_10(contarCuentasDialUpPorProveedorRegion("IMPSAT / GLOBAL CROSSING",5));
            LogicaAplicacion.setP11ae_11(contarCuentasDialUpPorProveedorRegion("Otro",5));
            
            LogicaAplicacion.setP11af_1(contarCuentasDialUpPorProveedorRegion("Cantv",6));
            LogicaAplicacion.setP11af_2(contarCuentasDialUpPorProveedorRegion("Movistar / Telefónica",6));
            //LogicaAplicacion.setP11af_3(contarCuentasDialUpPorProveedorRegion("BT Latam (Comsat)",6));
            LogicaAplicacion.setP11af_4(contarCuentasDialUpPorProveedorRegion("Intercable",6));
            LogicaAplicacion.setP11af_5(contarCuentasDialUpPorProveedorRegion("Supercable",6));
            LogicaAplicacion.setP11af_6(contarCuentasDialUpPorProveedorRegion("MCI / Verizon",6));
            LogicaAplicacion.setP11af_7(contarCuentasDialUpPorProveedorRegion("Unete",6));
            LogicaAplicacion.setP11af_8(contarCuentasDialUpPorProveedorRegion("Net Uno",6));
            LogicaAplicacion.setP11af_9(contarCuentasDialUpPorProveedorRegion("Tutopia",6));
            LogicaAplicacion.setP11af_10(contarCuentasDialUpPorProveedorRegion("IMPSAT / GLOBAL CROSSING",6));
            LogicaAplicacion.setP11af_11(contarCuentasDialUpPorProveedorRegion("Otro",6));
     }
     
    private int obtenerCuentasDialUpTotales(){
        int total = 0;
            for (Historica hist: this.getInserts())
                total = total + hist.getCantidad();
            
        return total;
    }
    
    private int obtenerCuentasDialUpTotalesPorRegion(int region){
      int total = 0; 
        for (Historica hist: this.getInserts())
            if (hist.getLug_id() == region)
                total = total + hist.getCantidad();
        return total;
    }
    
    private int contarCuentasDialUpPorProveedor(String proveedor){
        int total = 0; 
        for (Historica hist: this.getInserts())
            if (hist.getProveedor().equals(proveedor))
                total = total + hist.getCantidad();
        return total;
    }
    
    private int contarCuentasDialUpPorProveedorRegion(String proveedor, int region){
        int total = 0;
        
        for (Historica hist: this.getInserts())
            if (hist.getProveedor().equals(proveedor) && hist.getLug_id() == region)
                total = total + hist.getCantidad();
        
        return total;
    }
    
    private Boolean contieneLetras(String cadena) {
        matcher = patron.matcher(cadena);

        if (matcher.find()) {
            return true;
        } else {
            return false;
        }
    }

    private void bloquearRadios() {
        jCCantv.setEnabled(false);
        jCIMPSAT.setEnabled(false);
        jCSupercable.setEnabled(false);
        jCIntercable.setEnabled(false);
        jCUnete.setEnabled(false);
        jCMCI.setEnabled(false);
        jCMovistar.setEnabled(false);
        jCTutopia.setEnabled(false);
        jCNetUno.setEnabled(false);
        jCOtro.setEnabled(false);
    }

    private void InsertarEnTabla(String proveedor, String cuentas,
            String ciudad) {
        ((DefaultTableModel) this.jTInformacionProveedores.getModel()).
                insertRow(0, new Object[]{proveedor, ciudad, cuentas});
    }

    private void desbloquearOpciones() {
        jComboPaisesCiudades.setEnabled(true);
        jBAgregarInfoTabla.setEnabled(true);
    }

    private String sustituirAcentos(String input) {
        // Cadena de caracteres original a sustituir.
        String original = "áàäéèëíìïóòöúùuñÁÀÄÉÈËÍÌÏÓÒÖÚÙÜÑçÇ";
        // Cadena de caracteres ASCII que reemplazarán los originales.
        String ascii = "aaaeeeiiiooouuunAAAEEEIIIOOOUUUNcC";
        String output = input;
        for (int i = 0; i < original.length(); i++) {
            // Reemplazamos los caracteres especiales.
            output = output.replace(original.charAt(i), ascii.charAt(i));
        }//for i
        return output;
    }

    private void borrarProveedor(String proveedor) {
        System.out.println("Borrando proveedor: "+proveedor); 
        for (int i = 0; i < proveedores.size(); i++) {
            if (proveedores.get(i).getProv_nombre().equals(proveedor)) {
                proveedores.remove(i);
                jCProveedoresTabla.removeItemAt(buscarProveedorCombo(proveedor));
            }
        }
    }
    
    private int buscarProveedorCombo(String proveedor){
        for (int i=0;  i < jCProveedoresTabla.getItemCount(); i++){
            if (jCProveedoresTabla.getItemAt(i).toString().equals(proveedor)){
                System.out.println("Encontrado el proveedor en la casilla:" +i); 
                return i;
            }
               
        }
        System.out.println("No lo encontre!");
       return 0;
    }

    private void agregarProveedor(String proveedor) {
        boolean existe = false;
        for (Proveedor d : proveedores) {
            if (d.getProv_nombre().equals(proveedor)) {
                existe = true;
            }
        }

        if (!existe) {
            proveedores.add(new Proveedor((proveedor)));
            jCProveedoresTabla.addItem(proveedor);
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new RegistroInternetDialUp().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton JBPrev;
    private javax.swing.JButton jBAceptar;
    private javax.swing.JButton jBAceptarCantidad;
    private javax.swing.JButton jBAgregarInfoTabla;
    private javax.swing.JButton jBAgregarProveedorNuevo;
    private javax.swing.JButton jBAgregarTabla;
    private javax.swing.JButton jBFinalizarSeleccion;
    private javax.swing.JCheckBox jCCantv;
    private javax.swing.JCheckBox jCIMPSAT;
    private javax.swing.JCheckBox jCIntercable;
    private javax.swing.JCheckBox jCMCI;
    private javax.swing.JCheckBox jCMovistar;
    private javax.swing.JCheckBox jCNetUno;
    private javax.swing.JCheckBox jCOtro;
    private javax.swing.JComboBox jCProveedores;
    private javax.swing.JComboBox jCProveedoresTabla;
    private javax.swing.JCheckBox jCSupercable;
    private javax.swing.JCheckBox jCTutopia;
    private javax.swing.JCheckBox jCUnete;
    private javax.swing.JComboBox jComboPaisesCiudades;
    private javax.swing.JComboBox jComboPaisesCiudadesDinamico;
    private javax.swing.JLabel jLCuentaActualizada;
    private javax.swing.JLabel jLInformacionProveedor;
    private javax.swing.JLabel jLLogo;
    private javax.swing.JLabel jLSponsor;
    private javax.swing.JLabel jLTimer;
    private javax.swing.JLabel jLTitulo;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLayeredPane jLayeredPane1;
    private javax.swing.JLayeredPane jLayeredPane2;
    private javax.swing.JLayeredPane jLayeredPane3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextField jTCantidad;
    private javax.swing.JTextArea jTComentarios;
    private javax.swing.JTextField jTCuentas;
    private javax.swing.JTextField jTCuentasProveedor;
    private javax.swing.JTable jTInformacionProveedores;
    private javax.swing.JTextField jTOtros;
    // End of variables declaration//GEN-END:variables

    public void run() {
        try {
            while (inicio) {

                if (segundos != 59) {
                    segundos++;
                } else {
                    if (minutos != 59) {
                        segundos = 0;
                        minutos++;
                    } else {
                        horas++;
                        minutos = 0;
                        segundos = 0;
                    }
                }

                if (minutos >= 10) {
                    jLTimer.setForeground(Color.red);
                }

                jLTimer.setText(horas + ":" + minutos + ":" + segundos);

                Thread.sleep(999);
            }

        } catch (InterruptedException ex) {
            System.out.println("Error en el sleep de aplicacion = " + ex.getMessage());
        }
    }
}
